/*
 * WxUtils.h
 *
 *  Created on: Sep 7, 2011
 *      Author: erudhes
 */
#ifndef WXUTILS_H_
#define WXUTILS_H_
#include <vector>
#include <wx/wx.h>

class WxUtils
{
	public:
		class Color
		{
			public:
				Color();
				Color(unsigned char red, unsigned char green, unsigned char blue);

				unsigned char getRed() const;
				unsigned char getGreen() const;
				unsigned char getBlue() const;
				void setRed(unsigned char red);
				void setGreen(unsigned char green);
				void setBlue(unsigned char blue);

			private:
				unsigned char mRed;
				unsigned char mGreen;
				unsigned char mBlue;
		};

		static const Color RED;
		static const Color GREEN;
		static const Color BLUE;
		static const Color BLACK;
		static const Color WHITE;

		static std::vector<wxPoint> getPointsAround(const wxPoint& point, unsigned int radius = 1);

	private:
		WxUtils();
		virtual ~WxUtils();
};

inline unsigned char WxUtils::Color::getRed() const
{
	return mRed;
}

inline unsigned char WxUtils::Color::getGreen() const
{
	return mGreen;
}

inline unsigned char WxUtils::Color::getBlue() const
{
	return mBlue;
}

inline void WxUtils::Color::setRed(unsigned char red)
{
	mRed = red;
}

inline void WxUtils::Color::setGreen(unsigned char green)
{
	mGreen = green;
}

inline void WxUtils::Color::setBlue(unsigned char blue)
{
	mBlue = blue;
}

#endif /* WXUTILS_H_ */
